load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("//bazel/go:go_test.bzl", "go_test")

go_library(
    name = "kubecmd",
    srcs = [
        "backup.go",
        "kubecmd.go",
        "status.go",
    ],
    importpath = "github.com/edgelesssys/constellation/v2/internal/constellation/kubecmd",
    visibility = ["//:__subpackages__"],
    deps = [
        "//internal/attestation/variant",
        "//internal/compatibility",
        "//internal/config",
        "//internal/constants",
        "//internal/file",
        "//internal/kubernetes",
        "//internal/kubernetes/kubectl",
        "//internal/retry",
        "//internal/semver",
        "//internal/versions",
        "//internal/versions/components",
        "//operators/constellation-node-operator/api/v1alpha1",
        "@io_k8s_api//core/v1:core",
        "@io_k8s_apiextensions_apiserver//pkg/apis/apiextensions/v1:apiextensions",
        "@io_k8s_apimachinery//pkg/api/errors",
        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
        "@io_k8s_apimachinery//pkg/apis/meta/v1/unstructured",
        "@io_k8s_apimachinery//pkg/runtime",
        "@io_k8s_apimachinery//pkg/runtime/schema",
        "@io_k8s_apimachinery//pkg/runtime/serializer/json",
        "@io_k8s_client_go//util/retry",
        "@io_k8s_kubernetes//cmd/kubeadm/app/apis/kubeadm",
        "@io_k8s_kubernetes//cmd/kubeadm/app/apis/kubeadm/scheme",
        "@io_k8s_kubernetes//cmd/kubeadm/app/apis/kubeadm/v1beta4",
        "@io_k8s_sigs_yaml//:yaml",
    ],
)

go_test(
    name = "kubecmd_test",
    srcs = [
        "backup_test.go",
        "kubecmd_test.go",
    ],
    embed = [":kubecmd"],
    deps = [
        "//internal/attestation/measurements",
        "//internal/compatibility",
        "//internal/config",
        "//internal/constants",
        "//internal/file",
        "//internal/logger",
        "//internal/semver",
        "//internal/versions",
        "//internal/versions/components",
        "//operators/constellation-node-operator/api/v1alpha1",
        "@com_github_pkg_errors//:errors",
        "@com_github_spf13_afero//:afero",
        "@com_github_stretchr_testify//assert",
        "@com_github_stretchr_testify//mock",
        "@com_github_stretchr_testify//require",
        "@io_k8s_api//core/v1:core",
        "@io_k8s_apiextensions_apiserver//pkg/apis/apiextensions/v1:apiextensions",
        "@io_k8s_apimachinery//pkg/api/errors",
        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
        "@io_k8s_apimachinery//pkg/apis/meta/v1/unstructured",
        "@io_k8s_apimachinery//pkg/runtime",
        "@io_k8s_apimachinery//pkg/runtime/schema",
        "@io_k8s_sigs_yaml//:yaml",
    ],
)
